package com.song.config;

import org.springframework.util.StringUtils;
import org.springframework.web.servlet.LocaleResolver;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;

/**
 * 如何实现页面国际化？
 *      1.配置i18n文件（界面上显示的组件属性中文、英文配置）
 *      2.前端按钮替换，自定义组件（MyLocaleResolver）
 *      3.将组件配合指导Spring容器中 (MyMvcConfig)
 *      本质：按钮请求路径url加上参数：l=en-us, l=zh_cn，实现中英文显示切换
 *
 *
 * 自定义本地化解析器
 *      在 WebMvcAutoConfiguration 中 LocaleResolver有默认配置的解析器
 *      实现首页中文、英文显示切换
 */
// 国际化
public class MyLocaleResolver implements LocaleResolver {

    // 解析请求
    @Override
    public Locale resolveLocale(HttpServletRequest request) {
        // 获取请求中的语言参数
        String lan = request.getParameter("l");
        System.out.println("语言:"+lan);
        // 如果没有就使用默认的
        Locale locale = Locale.getDefault();

        if (lan!=null){
            /*
                <!--国际化中英文切换-->
                <a class="btn btn-sm" th:href="@{/index.html(l='zn_CN')}">中文</a>
                <a class="btn btn-sm" th:href="@{/index.html(l='en_US')}">English</a>
            */
            String[] split = lan.split("_");
            // 国家，地区
            locale = new Locale(split[0], split[1]);
            System.out.println("locale:"+locale);
        }
        return locale;
    }

    @Override
    public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {

    }
}
